package cn.com.surker.report.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 销售分析
 * </p>
 *
 * @author admin
 * @since 2022-09-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ReportSale implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 类型描述
     */
    private String name;

    /**
     * 统计日期(格式yyyy-MM-dd)
     */
    private String today;

    /**
     * 类型(0:日1:月2:年)
     */
    private Integer type;

    /**
     * 数据源Code
     */
    private String code;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 公司名称
     */
    private String orgName;

    /**
     * 应收金额(元)
     */
    private Double saleMoney;

    /**
     * 签订方量
     */
    private Double saleStere;

    /**
     * 泵送金额(元)
     */
    private Double pumpMoney;

    /**
     * 泵送方量
     */
    private Double pumpStere;

    /**
     * 签收方量JSON
     */
    private String acceptStereData;

    /**
     * 小票签收比(数据JSON)
     */
    private String ticketRate;

    /**
     * 回款金额(元)
     */
    private Double returnMoney;

    /**
     * 应收金额(元)
     */
    private Double shouldMoney;

    /**
     * 欠款金额(元)
     */
    private Double oweMoney;

    /**
     * 签收小票
     */
    private Integer verifyTicket;

    /**
     * 同比小票
     */
    private Integer yoyTicket;

    /**
     * 环比小票
     */
    private Integer qoqTicket;

    /**
     * 合同签订方量
     */
    private Double signStere;

    /**
     * 未签小票
     */
    private Integer unVerifyTicket;

    /**
     * 回款占比(数据JSON)
     */
    private String returnRate;

    /**
     * 结算工程
     */
    private Integer settleBuild;

    /**
     * 供应工程
     */
    private Integer supplyBuild;

    /**
     * 正供工程
     */
    private Integer haveBuild;

    /**
     * 终止工程
     */
    private Integer stopBuild;

    /**
     * 签订方量JSON
     * */
    private String signStereData;

    /**
     * 回款、应收金额JSON
     * */
    private String fundMoneyData;

    /**
     * 泵送方量JSON
     * */
    private String pumpStereData;

    /**
     * 泵送金额JSON
     * */
    private String pumpMoneyData;

    /**
     * 状态(0:启用1:禁用)
     */
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    public ReportSale () {

    }

    public ReportSale(String name, String today, Integer type, String code, Long orgId, String orgName, Double saleMoney,
                      Double saleStere, Double pumpMoney, Double pumpStere, String ticketRate, Double returnMoney,
                      Double shouldMoney, Double oweMoney, Integer verifyTicket, Double signStere, Integer unVerifyTicket,
                      String returnRate, Integer settleBuild, Integer supplyBuild, Integer haveBuild, Integer stopBuild,
                      String signStereData, String fundMoneyData, String pumpStereData, String pumpMoneyData, Integer status,
                      Date createTime, Date updateTime, String acceptStereData, Integer yoyTicket, Integer qoqTicket) {
        this.name = name;
        this.today = today;
        this.type = type;
        this.code = code;
        this.orgId = orgId;
        this.orgName = orgName;
        this.saleMoney = saleMoney;
        this.saleStere = saleStere;
        this.pumpMoney = pumpMoney;
        this.pumpStere = pumpStere;
        this.ticketRate = ticketRate;
        this.returnMoney = returnMoney;
        this.shouldMoney = shouldMoney;
        this.oweMoney = oweMoney;
        this.verifyTicket = verifyTicket;
        this.signStere = signStere;
        this.unVerifyTicket = unVerifyTicket;
        this.returnRate = returnRate;
        this.settleBuild = settleBuild;
        this.supplyBuild = supplyBuild;
        this.haveBuild = haveBuild;
        this.stopBuild = stopBuild;
        this.signStereData = signStereData;
        this.fundMoneyData = fundMoneyData;
        this.pumpStereData = pumpStereData;
        this.pumpMoneyData = pumpMoneyData;
        this.status = status;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.acceptStereData = acceptStereData;
        this.yoyTicket = yoyTicket;
        this.qoqTicket = qoqTicket;
    }
}
